package cn.zwx.common.limiter.service;

import cn.zwx.base.exception.BizWrapException;
import cn.zwx.common.limiter.annotation.LimitRule;


/**
 * @author zhangwenxue
 */
public interface LimiterService {

    /**
     * 限流类型
     * @return 内存: memory, 分布式: redis
     */
    String getType();

    /**
     * 限流方法
     * @param key 限流的key
     * @return true 表示 通过 false表示不通过
     * @throws BizWrapException 业务异常
     */
    boolean take(LimitRule key) throws BizWrapException;
}
